// 小公司的笔试题：

// 1.代码管理工具有哪些?你常用哪个?列举3个常用命令。

// 2.C++中类成员的访问权限是什么。

// 3.文件操作函数一般有哪些，请列举:

// 4.动态库在不同操作系统下的文件后缀名。

// 5.写出以下代码的输出结果。#include <stdio.h>
// int main(void){
//     char str[]= "A1B2C3D4F5";printf("%s\n", str + 6);
//     return O;
// }

// 6. What is the equivalent code of the following statement in WHILE loop code?
// for(int i=1; i<=100; i++)
//     printf("%dIn", i * i);

// 7.写出以下代码的输出结果。#include <stdio.h>
// #define CUBE(x)x * x * x
// int main(void){
//     int a = 3;
//     printf("%din",CUBE(a + 1));
//     return 0;
// }

// 8.如何获取操作系统是32位还是64位?

// 9.写出以下代码的输出结果。
// int x, y, z;
// x = y = 10;
// z = ++x || ++y;
// printf(""x=%d, y=%d,z=%d", x, y,z);

// 10.—段代码输出结果如下，请编写代码实现:
// 12345
// 1234
// 123
// 12
// 1

// 11.写出以下代码的输出结果，请给出推理过程。#include <stdio.h>
// int main(void){
//     printf("%x\n”,-1 <<8);
// }

// 12.以下为64位机器上的C程序，请计算下列sizeof的值。
// char str[]="Hello";
// char *p1 = str;
// int n = 8;
// void *p2 = malloc(n);
// 请计算: 
// sizeof(str);sizeof(p1);sizeof(n);sizeof(p2);

// 13.如下代码的输出是什么?#include "stdio.h"
// int main(){
//     char *str[3] = {"StrA","StrB", "StrC"};
//     char *p = str[0];
//     int i = 0;
//     while(i++<3){
//         printf("%s",p++);
//     }
//     printf("\n");
//     return o;
// }

// 14.Windows环境下，屏幕分辨率为1920x1080，
// 触摸屏坐标的输入范围是0~Ox7FFF。
// 假设左上角的位置为坐标原点，触摸点的输入坐标是(8000,6000)，
// 在屏幕上哪个位置显示该触摸点?


// 15.有如下数据通信协议，写一段程序，从一串数据中解析出数据帧。
// (请充分考虑程序的健壮性)


#include <stdio.h>
#include <iostream>
#include <stdlib.h>
// #include <climits>
#include <malloc.h>
#include <cstring>
#include <string>
#include <string.h>

using namespace std;

#define code(x) x*x*x

int main(void){
    // int a = 3;
    // int *p = &a;
    // cout << code(a + 1) << endl;
    // cout << sizeof(p) << endl;
                
    // int x, y, z;
    // x = y = 10;
    // z = ++x || ++y;
    // cout << x << ' ' << y << ' ' << z << endl;

    // int n = 5;
    // for(int i = 1; i <= 5; i++){
    //     for(int j = 1; j <= n; j++)
    //         cout << j;
    //     cout << endl;
    //     n--;
    // }

    // printf("%x\n", -1 << 8);
    // 11111111 11111111 11111111 11111111
    // 11111111 11111111 11111111 00000000
    // ff ff ff 00

    // char str[] = "Hello";
    // char* p1 = str;
    // int n = 8;
    // void* p2 = malloc(n);
    // cout << sizeof str << ' ' << sizeof p1 << ' ' << sizeof n << ' ' << sizeof p2 << endl;
    // cout << strlen(str) << endl;

    // error
    // char* p1 = "stra";
    // char* p2 = "strb";
    // char* p3 = "strc";
    // char *str[3] = {p1, p2, p3};

    // error
    char *str[3] = {"stra", "strb", "strc"};
    char *p = str[0];

    // Windows 下的vs是没有问题的
    const char *str[3] = {"stra", "strb", "strc"};
    const char *p = str[0];

    int i = 0;
    while(i++ < 3){
        // cout << p++;
        printf("%s", p++);
    }
    cout << endl;

    return 0;
}